package com.crm.system.service.activityManager;

import com.alibaba.fastjson.JSONArray;
import com.crm.common.model.DhPageInfo;
import com.crm.model.entity.activityManager.CustomerProductGiftActivity;
import com.crm.model.qo.activityManager.CustomerGiftActivityAddQO;
import com.crm.model.qo.activityManager.CustomerProductGiftActivityQO;
import com.crm.model.vo.activityManager.CustomerProductGiftActivityContractVO;
import com.crm.model.vo.activityManager.CustomerProductGiftActivityVO;
import com.crm.model.vo.activityManager.CustomerProductGiftDetailVO;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;

/**
 * @author luojie
 * @date 2021/3/1 14:50
 */
public interface CustomerProductGiftActivityService {

    /**
     * 活动管理--赠品活动列表分页信息
     * @param productGiftActivityQO    ---赠品列表查询参数
     * @param pageIndex/ pageSize      ---页码、分页大小
     * @param sortName/sortOrder       ---活动列表排序字段及规则
     * @Author yincuimei
     * @return
     */
    DhPageInfo<CustomerProductGiftActivityVO> selectCustomerProductGiftActivityVOList(CustomerProductGiftActivityQO productGiftActivityQO, Integer pageIndex, Integer pageSize, String sortName, String sortOrder);

    /**
     * 赠品活动列表--(赠品活动上架时判断)根据赠品活动ID查询活动是否在有效期内
     * @param productGiftActivityId   ---赠品活动ID
     * @Author yincuimei
     * @return
     */
    Boolean selectGiftActivityIsInValidityPeriod(String productGiftActivityId);

    /**
     * 赠品活动列表--赠品活动上/下架操作
     * @param productGiftActivityId    ---赠品活动主键
     * @param giftShelfStatus          ---上下架状态(0:上架;1:下架)
     * @Author yincuimei
     * @return
     */
    Boolean updateGiftActivityShelfStatus(String productGiftActivityId,String giftShelfStatus);

    /**
     * 赠品活动列表--查看赠品活动
     * @param productGiftActivityId  ---赠品活动ID
     * @param giftCategory           ---赠送类别--1:产品类;2:价格类
     * @param productCategories      ---产品分类--1:会员；2:非会员
     * @Author yincuimei
     * @return
     */
    CustomerProductGiftDetailVO selectCustomerProductGiftActivityDetail(String productGiftActivityId,String giftCategory,String productCategories);

    /**
     * 赠品活动列表--删除赠品活动
     * @param productGiftActivityId ---赠品活动ID
     * @Author yincuimei
     */
    void deleteCustomerProductGiftActivity(String productGiftActivityId);

    /**
     * 活动管理--新增赠品
     * @param customerGiftActivityAddQO
     * @author luojie
     * @return
     */
    int addProductGiftActivity(CustomerGiftActivityAddQO customerGiftActivityAddQO);

    /**
     * 活动管理--赠品编辑-根据赠品id查询赠品基本信息
     * @return
     */
    CustomerProductGiftActivity selectCustomerProductGiftActivityById(String productGiftActivityId);

    /**
     * 编辑赠品活动
     * @param customerGiftActivityAddQO
     * @return
     */
    int editProductGiftActivity(CustomerGiftActivityAddQO customerGiftActivityAddQO);

    /**
     * 根据产品id
     * @param productId
     * @return
     */
    List<HashMap> selectProductDropDownCheckedListByProductId(String productId);

    /**
     * 根据产品idList查询对应的赠品列表
     * @param selectProductGiftListByProductIdList 产品idList
     * @param price 价钱
     * @return
     */
    List<CustomerProductGiftActivityContractVO> selectProductGiftListByProductIdAndPrice(JSONArray selectProductGiftListByProductIdList, BigDecimal price);
}
